/*
 * > /*
>  * INSANE - Interactive Structural Analysis Environment
>  *
>  * Copyright (C) 2003-2004
>  * Universidade Federal de Minas Gerais
>  * Escola de Engenharia
>  * Departamento de Engenharia de Estruturas
>  *
>  * Author's email :     insane@dees.ufmg.br
>  * Author's Website :   http://www.dees.ufmg.br/insane
>  *
>  * This program is free software; you can redistribute it and/or
>  * modify it under the terms of the GNU General Public License
>  * as published by the Free Software Foundation; either version 2
>  * of the License, or any later version.
>  *
>  * This program is distributed in the hope that it will be useful,
>  * but WITHOUT ANY WARRANTY; without even the implied warranty of
>  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>  * GNU General Public License for more details.
>  *
>  * You should have received a copy of the GNU General Public License
>  * along with this program; if not, write to the Free Software
>  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-
> 1307, USA.
 *
 */

/*
 * Created on 10/07/2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package br.ufmg.dees.insane.xyplot.xyplot_view.dialog;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Locale;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import br.ufmg.dees.insane.xyplot.xyplot_view.InterfaceXYPlot;
import br.ufmg.dees.insane.xyplot.xyplot_view.XYPlotViewState;
import br.ufmg.dees.insane.xyplot.xyplot_view.command.LastZoomCommand;


/**
 * @author  Samuel Silva Penna  TODO To change the template for this generated type comment go to  Window - Preferences - Java - Code Style - Code Templates
 */
public class AxisDialog extends SimpleDialog{ 
    
    /**
	 * Comment for <code>serialVersionUID</code>
	 */
	private static final long serialVersionUID = 1L;
	
	private InterfaceXYPlot parent;
    private JPanel colorsPane = new JPanel();
    private JPanel colorsTitlePane =new JPanel();
    public JComboBox textMarksFontCombo;
    public JComboBox titleFontCombo = new JComboBox();
    public JComboBox titleStyleCombo = new JComboBox();
    public JComboBox textMarksPlaceCombo = new JComboBox();
    private JTextField axisColorField = new JTextField();
    private JTextField axisTitleColorField = new JTextField();
    private JTextField axisTitleField = new JTextField();
    private JTextField axisTitleSizeField = new JTextField();
    private JTextField titleAxisColorField = new JTextField();
    private JButton chooseAxisColor = new JButton("Choose");
    private JButton chooseAxisTitleColor = new JButton("Choose");
    private JCheckBox marksOn = new JCheckBox("");
    private JCheckBox marksOff = new JCheckBox("");
    private DecimalField positionXField ;
    private DecimalField positionYField ;
    private DecimalField axisTitleSizeDecimalField;
    private DecimalField textMarksFontSizeDecimalField;
    private DecimalField stepField;
    private JColorChooser colorChooser = new JColorChooser();
    private boolean marksOnOff;
    private String[] textFontStr;
    private Color axisColor;
    private Color axisTitleColor;
    private NumberFormat numberFormat;
    private XYPlotViewState state;
    private String title;
    private String axisTitle;
    private int nTables;
    private int sizeFontAxisTitle;
    private int sizeFontAxisMarksText;
    private double positionX;
    private double positionY;
    private double step;
    
    public AxisDialog(String Title, int nTables){
        this.title = Title;
        this.nTables = nTables;    
    }
    
    /**
     * Method to add an input table.
     *
     * @param name  a table name.
     * @param colNames an array with the table column names.
     * @see javax.swing
     */
    public JPanel addAxisTable(String label ) {
        
    	setUpFormat();
    	
    	//Sets up the main panel
        JPanel mainPane = new JPanel();
        mainPane.setLayout(new GridLayout(2,2,2,2));          
        mainPane.setPreferredSize(new Dimension(350,430));
        mainPane.setMaximumSize(new Dimension(350,430));
        mainPane.setLayout(new BoxLayout(mainPane,BoxLayout.Y_AXIS));      
         
        //set up the axis titlePane
        JPanel titlePane = new JPanel();
        titlePane.setLayout(new GridLayout(5,2,2,2));          
        titlePane.setPreferredSize(new Dimension(350,175));
        titlePane.setMaximumSize(new Dimension(350,185));
        titlePane.setBorder(BorderFactory.createCompoundBorder(
        		BorderFactory.createTitledBorder("Axis Title"),
        		BorderFactory.createEmptyBorder(2,2,2,2)));
        // title field 
        titlePane.add(new JLabel("Title"));
        axisTitleField.setMaximumSize(new Dimension(75,26));
        axisTitleField.setPreferredSize(new Dimension(75,26));
        axisTitleField.setMinimumSize(new Dimension(75,26));
        axisTitleField.setSize(new Dimension(75,26));  
        titlePane.add(axisTitleField);
        // title font
        textFontStr = new String[5];
        textFontStr[0] = "Arial";
        textFontStr[1] = "Monospaced";
        textFontStr[2] = "SansSerif";
        textFontStr[3] = "Time"; 
        textFontStr[4] = "NONE"; 
        titleFontCombo = new JComboBox(textFontStr);
        titlePane.add(new JLabel("Title font:"));
        titleFontCombo.setMaximumSize(new Dimension(75,26));
        titleFontCombo.setPreferredSize(new Dimension(75,26));
        titleFontCombo.setMinimumSize(new Dimension(75,26));
        titleFontCombo.setSize(new Dimension(75,26));  
        titlePane.add(titleFontCombo); 
        // title font size
        titlePane.add(new JLabel("Size"));
        axisTitleSizeDecimalField = new DecimalField(sizeFontAxisTitle,10,numberFormat);
        axisTitleSizeDecimalField.setMaximumSize(new Dimension(75,26));
        axisTitleSizeDecimalField.setPreferredSize(new Dimension(75,26));
        axisTitleSizeDecimalField.setMinimumSize(new Dimension(75,26));
        axisTitleSizeDecimalField.setSize(new Dimension(75,26));  
        axisTitleSizeDecimalField.setEditable(true);
        titlePane.add(axisTitleSizeDecimalField);
       // title font Style
        String[] textStyle = new String[3];
        textStyle[0] = "Plain";
        textStyle[1] = "Bold";
        textStyle[2] = "Italic";
        titleStyleCombo = new JComboBox(textStyle);
        titlePane.add(new JLabel("Font Style:"));
        titleStyleCombo.setMaximumSize(new Dimension(75,26));
        titleStyleCombo.setPreferredSize(new Dimension(75,26));
        titleStyleCombo.setMinimumSize(new Dimension(75,26));
        titleStyleCombo.setSize(new Dimension(75,26));  
        titlePane.add(titleStyleCombo); 
       // title position X  
        JPanel positionXPanel = new JPanel();
        positionXPanel.setLayout(new GridLayout(1,2,2,2));  
        positionXPanel.setMaximumSize(new Dimension(75,26));
        positionXPanel.setPreferredSize(new Dimension(75,26));
        positionXPanel.setMinimumSize(new Dimension(75,26));
        positionXPanel.setSize(new Dimension(75,26));  
        positionXPanel.add(new JLabel("Position X"));
        positionXField = new DecimalField(positionX,10,numberFormat);
        positionXField.setMaximumSize(new Dimension(75,26));
        positionXField.setPreferredSize(new Dimension(75,26));
        positionXField.setMinimumSize(new Dimension(75,26));
        positionXField.setSize(new Dimension(75,26));  
        positionXPanel.add(positionXField);
        titlePane.add(positionXPanel);
        // title position Y
        JPanel positionYPanel = new JPanel();
        positionYPanel.setLayout(new GridLayout(1,2,2,2));  
        positionYPanel.setMaximumSize(new Dimension(75,26));
        positionYPanel.setPreferredSize(new Dimension(75,26));
        positionYPanel.setMinimumSize(new Dimension(75,26));
        positionYPanel.setSize(new Dimension(75,26));  
        positionYPanel.add(new JLabel("Position Y"));
        positionYField = new DecimalField(positionY,10,numberFormat);
        positionYField.setMaximumSize(new Dimension(75,26));
        positionYField.setPreferredSize(new Dimension(75,26));
        positionYField.setMinimumSize(new Dimension(75,26));
        positionYPanel.add(positionYField);
        titlePane.add(positionYPanel);
        //Setting subpanel colors Title panel 
        colorsTitlePane = new JPanel();
        colorsTitlePane.setLayout(new BoxLayout(colorsTitlePane, BoxLayout.Y_AXIS));
        colorsTitlePane.setMaximumSize(new Dimension(350,60));
        colorsTitlePane.setBorder(BorderFactory.createCompoundBorder(
        		BorderFactory.createTitledBorder(""),
        		BorderFactory.createEmptyBorder(2,2,2,2)));
        colorsTitlePane.setLayout(new GridLayout(1,3,3,3));
        colorsTitlePane.add(new JLabel("Title Color"));
        axisTitleColorField = new JTextField();
        axisTitleColorField.setEditable(false);
        axisTitleColorField.setBackground(axisTitleColor);
        colorsTitlePane.add(axisTitleColorField);
        chooseAxisTitleColor = new JButton("Choose");
        colorsTitlePane.add(chooseAxisTitleColor);
        chooseAxisTitleColor.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                    axisTitleColorActionPerformed(e);
                }
            } );
        
        //Setting subpanel marks type 
        JPanel marksPane = new JPanel();
        marksPane.setLayout(new GridLayout(5,1,2,2));          
        marksPane.setMaximumSize(new Dimension(350,130));
        marksPane.setBorder(BorderFactory.createCompoundBorder(
        BorderFactory.createTitledBorder("Marks"),
        BorderFactory.createEmptyBorder(2,2,2,2)));
        //set the textfont       
        textMarksFontCombo = new JComboBox(textFontStr);
        marksPane.add(new JLabel("Text font:"));
        textMarksFontCombo.setMaximumSize(new Dimension(75,26));
        textMarksFontCombo.setPreferredSize(new Dimension(75,26));
        textMarksFontCombo.setMinimumSize(new Dimension(75,26));
        textMarksFontCombo.setSize(new Dimension(75,26));  
        marksPane.add(textMarksFontCombo); 
        // set marks size 
        marksPane.add(new JLabel("Size:"));
        textMarksFontSizeDecimalField = new DecimalField(sizeFontAxisMarksText,10,numberFormat);
        textMarksFontSizeDecimalField.setMaximumSize(new Dimension(75,26));
        textMarksFontSizeDecimalField.setPreferredSize(new Dimension(75,26));
        textMarksFontSizeDecimalField.setMinimumSize(new Dimension(75,26));
        textMarksFontSizeDecimalField.setSize(new Dimension(75,26));  
        textMarksFontSizeDecimalField.setEditable(true);
        marksPane.add(textMarksFontSizeDecimalField); 
        String[] placeStr = {"NORTH","SOUTH","EAST","WEST"};
        textMarksPlaceCombo = new JComboBox(placeStr);
        marksPane.add(new JLabel("Place:"));
        textMarksPlaceCombo.setMaximumSize(new Dimension(75,26));
        textMarksPlaceCombo.setPreferredSize(new Dimension(75,26));
        textMarksPlaceCombo.setMinimumSize(new Dimension(75,26));
        textMarksPlaceCombo.setSize(new Dimension(75,26));  
        marksPane.add(textMarksPlaceCombo); 
        // Step field 
        marksPane.add(new JLabel("Step"));
        stepField = new DecimalField(step,10,numberFormat);
        stepField.setMaximumSize(new Dimension(75,26));
        stepField.setPreferredSize(new Dimension(75,26));
        stepField.setMinimumSize(new Dimension(75,26));
        stepField.setSize(new Dimension(75,26));  
        marksPane.add(stepField);
        //Setting the checkBoxes
        ActionListener markListenerOn = new ChoiceListenerMarksOn();         
        marksOn.setText("Marks On");
        marksOn.addActionListener(markListenerOn);
        marksPane.add(marksOn); 
        ActionListener markListenerOff = new ChoiceListenerMarksOff();  
        marksOff.setText("Marks Off");
        marksOff.addActionListener(markListenerOff);
        marksPane.add(marksOff);
        
        //Setting subpanel colors panel 
        colorsPane = new JPanel();
        colorsPane.setLayout(new BoxLayout(colorsPane, BoxLayout.Y_AXIS));
        colorsPane.setMaximumSize(new Dimension(350,60));
        colorsPane.setBorder(BorderFactory.createCompoundBorder(
        BorderFactory.createTitledBorder(""),
        BorderFactory.createEmptyBorder(2,2,2,2)));
      
        //Sets the colors panel
        colorsPane.setLayout(new GridLayout(1,3,3,3));
        colorsPane.add(new JLabel(label));
        axisColorField = new JTextField();
        axisColorField.setEditable(false);
        axisColorField.setBackground(axisColor);
        colorsPane.add(axisColorField);
        chooseAxisColor = new JButton("Choose");
        colorsPane.add(chooseAxisColor);
        chooseAxisColor.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                    axisColorActionPerformed(e);
                }
            } );
   
        //Sets main panel
        mainPane.add(titlePane);
        mainPane.add(colorsTitlePane);
        mainPane.add(marksPane);
        mainPane.add(colorsPane);
        
        JPanel tablePane = new JPanel();
        tablePane.setLayout(new GridLayout(1,1,0,0));
        mainPane.add(tablePane);
       
       return mainPane;
    
    } //End of addSequenceTable
    
    /**
     * This method is executed on OK button click.
     *
     */
    public void approvedPerform() {
        try{
        	this.setVisible(false);
            LastZoomCommand cmd = new LastZoomCommand(parent);
            cmd.execute();
       }catch (Exception err) {
            Toolkit.getDefaultToolkit().beep();
            this.setVisible(false);
       }
    }
    
    private void axisColorActionPerformed(ActionEvent e) {
        axisColorField.setBackground(JColorChooser.showDialog(this, "Choose Axis Color", axisColorField.getBackground()));
    }
    
    private void axisTitleColorActionPerformed(ActionEvent e) {
        axisTitleColorField.setBackground(JColorChooser.showDialog(this, "Choose Title Color", axisTitleColorField.getBackground()));
    }
    
    /**
     * Sets the number formater
     */
    private void setUpFormat() {
        numberFormat = (DecimalFormat)NumberFormat.getNumberInstance(Locale.UK);
        numberFormat.setMaximumFractionDigits(10);
    }
    
    /**
	 * @return  Returns the axisColorField.
	 * @uml.property  name="axisColorField"
	 */
    public JTextField getAxisColorField(){
        return this.axisColorField;
    }
    
    /**
	 * @return  Returns the axisTitleColorField.
	 * @uml.property  name="axisTitleColorField"
	 */
    public JTextField getAxisTitleColorField(){
        return this.axisTitleColorField;
    }
    
    /**
	 * @return  Returns the axisColor.
	 * @uml.property  name="axisColor"
	 */
    public Color getAxisColor(){     
        return axisColor;
    }

    /**
	 * @param axisColor  The axisColor to set.
	 * @uml.property  name="axisColor"
	 */
    public void setAxisColor(Color currentAxisColor){   
    	axisColor = currentAxisColor;
    }
    
    /**
	 * @return  Returns the axisTitleColor.
	 * @uml.property  name="axisTitleColor"
	 */
    public Color getAxisTitleColor(){     
        return axisTitleColor;
    }

    /**
	 * @param axisTitleColor  The axisTitleColor to set.
	 * @uml.property  name="axisTitleColor"
	 */
    public void setAxisTitleColor(Color currentAxisColor){   
    	axisTitleColor = currentAxisColor;
    }
    
    public boolean getCheckMarksOnOff(){
        return marksOnOff;
    }
 
    public void setCheckMarksOnOff(boolean chk){
        marksOnOff = chk;
    }
    
   private class ChoiceListenerMarksOn implements ActionListener{
       public void actionPerformed(ActionEvent event){
    	   if(marksOn.isSelected()){
    		   marksOn.setSelected(true);
               marksOff.setSelected(false);
           }
       }    
   }
   
   private class ChoiceListenerMarksOff implements ActionListener{
       public void actionPerformed(ActionEvent event){
    	   if(marksOff.isSelected()){
    		   marksOff.setSelected(true);
               marksOn.setSelected(false);
           }
       }    
   }
	
	/**
	 * @return  Returns the axisTitle.
	 * @uml.property  name="axisTitle"
	 */
	public String getAxisTitle() {
		return axisTitle;
	}
	/**
	 * @param axisTitle  The axisTitle to set.
	 * @uml.property  name="axisTitle"
	 */
	public void setAxisTitle(String axisTitle) {
		this.axisTitle = axisTitle;
	}
	/**
	 * @return  Returns the axisTitleField.
	 * @uml.property  name="axisTitleField"
	 */
	public JTextField getAxisTitleField() {
		return axisTitleField;
	}
	/**
	 * @param axisTitleField  The axisTitleField to set.
	 * @uml.property  name="axisTitleField"
	 */
	public void setAxisTitleField(JTextField axisTitleField) {
		this.axisTitleField = axisTitleField;
	}
	/**
	 * @return Returns the axisTitleSize.
	 */
	public DecimalField getAxisTitleSize() {
		return axisTitleSizeDecimalField;
	}
	/**
	 * @param axisTitleSize The axisTitleSize to set.
	 */
	public void setAxisTitleSize(DecimalField axisTitleSize) {
		this.axisTitleSizeDecimalField = axisTitleSize;
	}
	/**
	 * @return  Returns the axisTitleSizeField.
	 * @uml.property  name="axisTitleSizeField"
	 */
	public JTextField getAxisTitleSizeField() {
		return axisTitleSizeField;
	}
	/**
	 * @param axisTitleSizeField  The axisTitleSizeField to set.
	 * @uml.property  name="axisTitleSizeField"
	 */
	public void setAxisTitleSizeField(JTextField axisTitleSizeField) {
		this.axisTitleSizeField = axisTitleSizeField;
	}
	/**
	 * @return  Returns the chooseAxisColor.
	 * @uml.property  name="chooseAxisColor"
	 */
	public JButton getChooseAxisColor() {
		return chooseAxisColor;
	}
	/**
	 * @param chooseAxisColor  The chooseAxisColor to set.
	 * @uml.property  name="chooseAxisColor"
	 */
	public void setChooseAxisColor(JButton chooseAxisColor) {
		this.chooseAxisColor = chooseAxisColor;
	}
	/**
	 * @return  Returns the chooseAxisTitleColor.
	 * @uml.property  name="chooseAxisTitleColor"
	 */
	public JButton getChooseAxisTitleColor() {
		return chooseAxisTitleColor;
	}
	/**
	 * @param chooseAxisTitleColor  The chooseAxisTitleColor to set.
	 * @uml.property  name="chooseAxisTitleColor"
	 */
	public void setChooseAxisTitleColor(JButton chooseAxisTitleColor) {
		this.chooseAxisTitleColor = chooseAxisTitleColor;
	}
	/**
	 * @return  Returns the colorChooser.
	 * @uml.property  name="colorChooser"
	 */
	public JColorChooser getColorChooser() {
		return colorChooser;
	}
	/**
	 * @param colorChooser  The colorChooser to set.
	 * @uml.property  name="colorChooser"
	 */
	public void setColorChooser(JColorChooser colorChooser) {
		this.colorChooser = colorChooser;
	}
	/**
	 * @return  Returns the colorsPane.
	 * @uml.property  name="colorsPane"
	 */
	public JPanel getColorsPane() {
		return colorsPane;
	}
	/**
	 * @param colorsPane  The colorsPane to set.
	 * @uml.property  name="colorsPane"
	 */
	public void setColorsPane(JPanel colorsPane) {
		this.colorsPane = colorsPane;
	}
	/**
	 * @return  Returns the colorsTitlePane.
	 * @uml.property  name="colorsTitlePane"
	 */
	public JPanel getColorsTitlePane() {
		return colorsTitlePane;
	}
	/**
	 * @param colorsTitlePane  The colorsTitlePane to set.
	 * @uml.property  name="colorsTitlePane"
	 */
	public void setColorsTitlePane(JPanel colorsTitlePane) {
		this.colorsTitlePane = colorsTitlePane;
	}
	/**
	 * @return  Returns the marksOff.
	 * @uml.property  name="marksOff"
	 */
	public JCheckBox getMarksOff() {
		return marksOff;
	}
	/**
	 * @param marksOff  The marksOff to set.
	 * @uml.property  name="marksOff"
	 */
	public void setMarksOff(JCheckBox marksOff) {
		this.marksOff = marksOff;
	}
	/**
	 * @return  Returns the marksOn.
	 * @uml.property  name="marksOn"
	 */
	public JCheckBox getMarksOn() {
		return marksOn;
	}
	/**
	 * @param marksOn  The marksOn to set.
	 * @uml.property  name="marksOn"
	 */
	public void setMarksOn(JCheckBox marksOn) {
		this.marksOn = marksOn;
	}
	/**
	 * @return  Returns the marksOnOff.
	 * @uml.property  name="marksOnOff"
	 */
	public boolean isMarksOnOff() {
		return marksOnOff;
	}
	/**
	 * @param marksOnOff  The marksOnOff to set.
	 * @uml.property  name="marksOnOff"
	 */
	public void setMarksOnOff(boolean marksOnOff) {
		this.marksOnOff = marksOnOff;
	}
	/**
	 * @return  Returns the nTables.
	 * @uml.property  name="nTables"
	 */
	public int getNTables() {
		return nTables;
	}
	/**
	 * @param tables  The nTables to set.
	 * @uml.property  name="nTables"
	 */
	public void setNTables(int tables) {
		nTables = tables;
	}
	/**
	 * @return  Returns the numberFormat.
	 * @uml.property  name="numberFormat"
	 */
	public NumberFormat getNumberFormat() {
		return numberFormat;
	}
	/**
	 * @param numberFormat  The numberFormat to set.
	 * @uml.property  name="numberFormat"
	 */
	public void setNumberFormat(NumberFormat numberFormat) {
		this.numberFormat = numberFormat;
	}
	/**
	 * @return  Returns the positionX.
	 * @uml.property  name="positionX"
	 */
	public double getPositionX() {
		return positionX;
	}
	/**
	 * @param positionX  The positionX to set.
	 * @uml.property  name="positionX"
	 */
	public void setPositionX(double positionX) {
		this.positionX = positionX;
	}
	/**
	 * @return  Returns the positionXField.
	 * @uml.property  name="positionXField"
	 */
	public DecimalField getPositionXField() {
		return positionXField;
	}
	/**
	 * @param positionXField  The positionXField to set.
	 * @uml.property  name="positionXField"
	 */
	public void setPositionXField(DecimalField positionXField) {
		this.positionXField = positionXField;
	}
	/**
	 * @return  Returns the positionY.
	 * @uml.property  name="positionY"
	 */
	public double getPositionY() {
		return positionY;
	}
	/**
	 * @param positionY  The positionY to set.
	 * @uml.property  name="positionY"
	 */
	public void setPositionY(double positionY) {
		this.positionY = positionY;
	}
	/**
	 * @return  Returns the positionYField.
	 * @uml.property  name="positionYField"
	 */
	public DecimalField getPositionYField() {
		return positionYField;
	}
	/**
	 * @param positionYField  The positionYField to set.
	 * @uml.property  name="positionYField"
	 */
	public void setPositionYField(DecimalField positionYField) {
		this.positionYField = positionYField;
	}
	/**
	 * @return  Returns the sizeFontAxisMarksText.
	 * @uml.property  name="sizeFontAxisMarksText"
	 */
	public int getSizeFontAxisMarksText() {
		return sizeFontAxisMarksText;
	}
	/**
	 * @param sizeFontAxisMarksText  The sizeFontAxisMarksText to set.
	 * @uml.property  name="sizeFontAxisMarksText"
	 */
	public void setSizeFontAxisMarksText(int sizeFontAxisMarksText) {
		this.sizeFontAxisMarksText = sizeFontAxisMarksText;
	}
	/**
	 * @return  Returns the sizeFontAxisTitle.
	 * @uml.property  name="sizeFontAxisTitle"
	 */
	public int getSizeFontAxisTitle() {
		return sizeFontAxisTitle;
	}
	/**
	 * @param sizeFontAxisTitle  The sizeFontAxisTitle to set.
	 * @uml.property  name="sizeFontAxisTitle"
	 */
	public void setSizeFontAxisTitle(int sizeFontAxisTitle) {
		this.sizeFontAxisTitle = sizeFontAxisTitle;
	}
	/**
	 * @return  Returns the state.
	 * @uml.property  name="state"
	 */
	public XYPlotViewState getState() {
		return state;
	}
	/**
	 * @param state  The state to set.
	 * @uml.property  name="state"
	 */
	public void setState(XYPlotViewState state) {
		this.state = state;
	}
	/**
	 * @return  Returns the step.
	 * @uml.property  name="step"
	 */
	public double getStep() {
		return step;
	}
	/**
	 * @param step  The step to set.
	 * @uml.property  name="step"
	 */
	public void setStep(double step) {
		this.step = step;
	}
	/**
	 * @return  Returns the stepField.
	 * @uml.property  name="stepField"
	 */
	public DecimalField getStepField() {
		return stepField;
	}
	/**
	 * @param stepField  The stepField to set.
	 * @uml.property  name="stepField"
	 */
	public void setStepField(DecimalField stepField) {
		this.stepField = stepField;
	}
	/**
	 * @return  Returns the textFontStr.
	 * @uml.property  name="textFontStr"
	 */
	public String[] getTextFontStr() {
		return textFontStr;
	}
	/**
	 * @param textFontStr  The textFontStr to set.
	 * @uml.property  name="textFontStr"
	 */
	public void setTextFontStr(String[] textFontStr) {
		this.textFontStr = textFontStr;
	}
	/**
	 * @return  Returns the textMarksFontCombo.
	 * @uml.property  name="textMarksFontCombo"
	 */
	public JComboBox getTextMarksFontCombo() {
		return textMarksFontCombo;
	}
	/**
	 * @param textMarksFontCombo  The textMarksFontCombo to set.
	 * @uml.property  name="textMarksFontCombo"
	 */
	public void setTextMarksFontCombo(JComboBox textMarksFontCombo) {
		this.textMarksFontCombo = textMarksFontCombo;
	}
	/**
	 * @return Returns the textMarksFontSize.
	 */
	public DecimalField getTextMarksFontSize() {
		return textMarksFontSizeDecimalField;
	}
	/**
	 * @param textMarksFontSize The textMarksFontSize to set.
	 */
	public void setTextMarksFontSize(DecimalField textMarksFontSize) {
		this.textMarksFontSizeDecimalField = textMarksFontSize;
	}
	/**
	 * @return  Returns the textMarksPlaceCombo.
	 * @uml.property  name="textMarksPlaceCombo"
	 */
	public JComboBox getTextMarksPlaceCombo() {
		return textMarksPlaceCombo;
	}
	/**
	 * @param textMarksPlaceCombo  The textMarksPlaceCombo to set.
	 * @uml.property  name="textMarksPlaceCombo"
	 */
	public void setTextMarksPlaceCombo(JComboBox textMarksPlaceCombo) {
		this.textMarksPlaceCombo = textMarksPlaceCombo;
	}
	/**
	 * @return  Returns the title.
	 * @uml.property  name="title"
	 */
	public String getTitle() {
		return title;
	}
	/**
	 * @param title  The title to set.
	 * @uml.property  name="title"
	 */
	public void setTitle(String title) {
		this.title = title;
	}
	/**
	 * @return  Returns the titleAxisColorField.
	 * @uml.property  name="titleAxisColorField"
	 */
	public JTextField getTitleAxisColorField() {
		return titleAxisColorField;
	}
	/**
	 * @param titleAxisColorField  The titleAxisColorField to set.
	 * @uml.property  name="titleAxisColorField"
	 */
	public void setTitleAxisColorField(JTextField titleAxisColorField) {
		this.titleAxisColorField = titleAxisColorField;
	}
	/**
	 * @return  Returns the titleFontCombo.
	 * @uml.property  name="titleFontCombo"
	 */
	public JComboBox getTitleFontCombo() {
		return titleFontCombo;
	}
	/**
	 * @param titleFontCombo  The titleFontCombo to set.
	 * @uml.property  name="titleFontCombo"
	 */
	public void setTitleFontCombo(JComboBox titleFontCombo) {
		this.titleFontCombo = titleFontCombo;
	}
	/**
	 * @return  Returns the titleStyleCombo.
	 * @uml.property  name="titleStyleCombo"
	 */
	public JComboBox getTitleStyleCombo() {
		return titleStyleCombo;
	}
	/**
	 * @param titleStyleCombo  The titleStyleCombo to set.
	 * @uml.property  name="titleStyleCombo"
	 */
	public void setTitleStyleCombo(JComboBox titleStyleCombo) {
		this.titleStyleCombo = titleStyleCombo;
	}
	/**
	 * @param axisColorField  The axisColorField to set.
	 * @uml.property  name="axisColorField"
	 */
	public void setAxisColorField(JTextField axisColorField) {
		this.axisColorField = axisColorField;
	}
	/**
	 * @param axisTitleColorField  The axisTitleColorField to set.
	 * @uml.property  name="axisTitleColorField"
	 */
	public void setAxisTitleColorField(JTextField axisTitleColorField) {
		this.axisTitleColorField = axisTitleColorField;
	}
	/**
	 * @return  Returns the axisTitleSizeDecimalField.
	 * @uml.property  name="axisTitleSizeDecimalField"
	 */
	public DecimalField getAxisTitleSizeDecimalField() {
		return axisTitleSizeDecimalField;
	}
	/**
	 * @param axisTitleSizeDecimalField  The axisTitleSizeDecimalField to set.
	 * @uml.property  name="axisTitleSizeDecimalField"
	 */
	public void setAxisTitleSizeDecimalField(DecimalField axisTitleSizeDecimalField) {
		this.axisTitleSizeDecimalField = axisTitleSizeDecimalField;
	}
	/**
	 * @return  Returns the textMarksFontSizeDecimalField.
	 * @uml.property  name="textMarksFontSizeDecimalField"
	 */
	public DecimalField getTextMarksFontSizeDecimalField() {
		return textMarksFontSizeDecimalField;
	}
	/**
	 * @param textMarksFontSizeDecimalField  The textMarksFontSizeDecimalField to set.
	 * @uml.property  name="textMarksFontSizeDecimalField"
	 */
	public void setTextMarksFontSizeDecimalField(DecimalField textMarksFontSizeDecimalField) {
		this.textMarksFontSizeDecimalField = textMarksFontSizeDecimalField;
	}
}
